package com.py.credit.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.framework.core.common.Page;

public interface ManualAssociateDao {

	public List<Map<String, Object>> selectFRByConditionForPage(@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "deptId") Long deptId,
			@Param(value = "userType") int type, @Param(value = "regionId") Long regionId,
			@Param(value = "page") Page page);

	public List<Map<String, Object>> selectZRRByConditionForPage(@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "deptId") Long deptId,
			@Param(value = "userType") int type, @Param(value = "regionId") Long regionId,
			@Param(value = "page") Page page);

	public List<Map<String, Object>> selectOne(@Param(value = "tableName") String tableName,
			@Param(value = "dataId") int dataId);

	public List<Map<String, Object>> selectFrAssociate(@Param(value = "tableName") String tableName,
			@Param(value = "dataId") int dataId);

	public List<Map<String, Object>> selectZrrAssociate(@Param(value = "tableName") String tableName,
			@Param(value = "dataId") int dataId);

	public List<Map<String, Object>> seachFrDataByConditionForPage(@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "sql") String sql,
			@Param(value = "page") Page page);

	public List<Map<String, Object>> selectZrrDataByConditionForPage(@Param(value = "columns") List<String> columns,
			@Param(value = "additionalColumns") String[] additionalColumns,
			@Param(value = "conditions") List<String> conditions, @Param(value = "sql") String sql,
			@Param(value = "page") Page page);

	public void updateData(@Param(value = "tybm") String tybm, @Param(value = "tableName") String tableName,
			@Param(value = "dataId") int dataId);

	void lessWaitCount(@Param(value = "tableName") String tableName,
					   @Param(value = "dataId") int dataId);

	public void deleteFrData(@Param(value = "tableId") int tableId, @Param(value = "dataId") int dataId);

	public void deleteZrrData(@Param(value = "tableId") int tableId, @Param(value = "dataId") int dataId);

}
